package com.pur.zsms.ordercustommanage.dao;

import java.math.BigDecimal;
import java.util.List;

import com.pur.zsms.common.exception.GenericException;
import com.pur.zsms.common.support.PageController;
import com.pur.zsms.common.support.PaginationSupport;
import com.pur.zsms.foodmanage.food.po.FoodMaterPo;
import com.pur.zsms.matermanage.mater.po.MaterLevelPo;
import com.pur.zsms.matermanage.mater.po.MaterPo;
import com.pur.zsms.ordercustommanage.po.OrderCustFoodPo;
import com.pur.zsms.ordercustommanage.po.OrderCustPo;
import com.pur.zsms.ordercustommanage.po.OrderSupplierMaterNeedPo;
import com.pur.zsms.ordercustommanage.po.OrderSupplierMaterPo;
import com.pur.zsms.ordercustommanage.po.OrderSupplierMaterRealPo;
import com.pur.zsms.ordercustommanage.po.OrderSupplierPo;
import com.pur.zsms.ordercustommanage.vo.OrderCustVo;
import com.pur.zsms.ordercustommanage.vo.OrderStateVo;
import com.pur.zsms.ordercustommanage.vo.OrderSupplierMaterRealVo;
import com.pur.zsms.supplier.po.ShopSupplierTypePo;
import com.pur.zsms.supplier.po.SupplierPo;
import com.pur.zsms.supplier.po.SupplierQualificationPo;

public interface ISelectFoodDao {

	public void addSelectFood(OrderCustPo c) throws GenericException;

	public void updateSelectFood(OrderCustPo po) throws GenericException;

	public int findInsertId() throws GenericException;

	public void addOrderFood(OrderCustFoodPo c) throws GenericException;

	public void updateOrderFood(OrderCustFoodPo po) throws GenericException;

	public int auto() throws GenericException;

	public void passOrder(OrderCustPo c) throws GenericException;

	public PaginationSupport listMyOrder(PageController pageController, OrderCustVo orderCustVo) throws GenericException;

	public PaginationSupport findEveryOrderState(PageController pageController, OrderStateVo orderStateVo) throws GenericException;

	public PaginationSupport listAllOrderForpurchase(PageController pageController, OrderCustVo orderCustVo) throws GenericException;

	public PaginationSupport reviewOrderList(PageController pageController, OrderCustVo orderCustVo) throws GenericException;

	public OrderCustPo getOrderCust(String c) throws GenericException;

	public List<OrderCustPo> getOrderCustList(String c) throws GenericException;

	public List<OrderCustPo> getOrderCustListByOrderDateAndShopId(String orderDate, long shopId, int buySelfFlag) throws GenericException;

	public List<OrderSupplierPo> getOrderCustListByOrderDateAndShopIdAndSupId(String orderDate, long shopId, long supid) throws GenericException;

	public List<OrderSupplierMaterPo> getOrderSupplierMaterPoByFoodIdAndMateridAndOid(String foodId, String materId, String ordId)
			throws GenericException;

	public List<OrderSupplierMaterPo> getOrderSupplierMaterPoByMateridOrdId(int materId, int ordId) throws GenericException;

	public List<OrderSupplierMaterPo> getOrderSupplierMaterPoByMateridOrdId(int materId, int ordId, int supId) throws GenericException;

	public List<OrderSupplierMaterPo> getOrderSupplierMaterPoByMateridOrdIdSupIdShopId(int materId, int ordId, long supId, long shopId)
			throws GenericException;

	public List<Object> getOrderSupplierMaterPoByMaterIdAndOrderDateAndSupId(int materId, String date, int supId) throws GenericException;

	/**
	 * 删单子 校验是否发货
	 * */
	public List<OrderSupplierPo> getOrderSupplierPoByOrdIdForCheck(String ordId) throws GenericException;

	/**
	 * 删单子 校验是否发货
	 * */
	public List<OrderSupplierPo> getOrderSupplierPoByOrdIdAndSupIdForCheck(String ordId, String supId) throws GenericException;

	public List<OrderSupplierPo> getOrderSupplierPoByOrdIdAndSupId(String ordId, String supId) throws GenericException;

	public List<OrderSupplierPo> getOrderSupplierPoByOrdId(String ordId) throws GenericException;

	public List<OrderSupplierPo> getOrderSupplierPoByOrdDateAndSupId(String ordDate, int supId) throws GenericException;

	public List<OrderSupplierPo> getOrderSupplierPoByOrdDateAndSupIdAndCustIdAll(String ordDate, int supId, String custIdAll) throws GenericException;

	public List<OrderSupplierPo> getOrderSupplierPoByOrdDateAndSupIdAndShopId(String ordDate, int supId, long shopId) throws GenericException;

	public List<OrderCustFoodPo> getOrderCustFood(String c) throws GenericException;

	public List<OrderCustFoodPo> getOrderCustFoodByOrdIdMaterIdMaterLevel(int ordId, int materId, int materLevel) throws GenericException;

	public List<OrderCustFoodPo> getOrderCustFoodByOrdId(int ordId) throws GenericException;

	public List<OrderCustFoodPo> getOrderCustFoodByOrdIdForAuxiliaryMater(int ordId, int supId) throws GenericException;

	public List<FoodMaterPo> getFootMaterByFoodId(int c) throws GenericException;

	public MaterPo getMaterValueByMaterId(int c) throws GenericException;

	public MaterLevelPo getMaterLevelByMaterId(int c) throws GenericException;

	public List<MaterLevelPo> checkMaterLevelByUserSup(int materId, int userId) throws GenericException;

	public MaterLevelPo getMaterLevelByMaterIdAndLevel(int id, int level) throws GenericException;

	public BigDecimal getFootValueByFoodId(int c, int userId) throws GenericException;

	public ShopSupplierTypePo getSuppCusPoByMaterType(int materType, int shopId) throws GenericException;

	public void addOrderSupplierMater(OrderSupplierMaterPo po) throws GenericException;

	public void addOrderSupplierMaterReal(OrderSupplierMaterRealPo po) throws GenericException;

	public void addOrderSupplierMaterNeed(OrderSupplierMaterNeedPo po) throws GenericException;

	public void updateOrderSupplierMater(OrderSupplierMaterPo po) throws GenericException;

	public void addOrderSupplier(OrderSupplierPo po) throws GenericException;

	public void updateOrderSupplierMaterReal(OrderSupplierMaterRealPo po) throws GenericException;

	public void updateOrderSupplier(OrderSupplierPo po) throws GenericException;

	public void updateOrderCustFoodPo(OrderCustFoodPo po) throws GenericException;

	public List<Object[]> getOrderSupplierMaterByOrdId(String ordId) throws GenericException;

	public List<Object[]> getOrderSupplierMaterByOrdIdAndSupIdAndShopId(String ordId, long supId, long shopId) throws GenericException;

	public List<Object[]> getRealValue(int ordId, int Level, String realWeight, int supId, int materId) throws GenericException;

	public OrderSupplierPo getOrderSupplierPoByOrdId(int id, int supId) throws GenericException;

	public void deleteOrder(int ordId) throws GenericException;

	public void deleteSupOrderByOid(int ordId) throws GenericException;

	public void deleteSupOrderByOidSupId(int ordId, int ordSupId) throws GenericException;

	public List<SupplierQualificationPo> getSupplierQualificationPoListByName(String name) throws GenericException;

	public List<OrderSupplierMaterRealPo> getOrderSupplierMaterRealPoBysupIdMaterDayMaterId(String materDay, int supId, long shopId, int materId)
			throws GenericException;

}
